<?php

/**
 * FicheAction
 */
class FicheAction extends CI_Model
{
	const TABLE_FICHE_ACTION					= 'fichebilanaction';
	const ID_FICHE_ACTION						= 'IDFicheAction';
	const ID_ADC_FICHE_ACTION 					= 'IDAction';
	const TRAVAIL_EFFECTUE_FICHE_ACTION 		= 'TravailEffectue';
	const POINT_POSITIF_FICHE_ACTION			= 'PointPositif';
	const POINT_NEGATIF_FICHE_ACTION			= 'PointNegatif';
	const BON_A_SAVOIR_FICHE_ACTION				= 'BonASavoir';
	const SUGGESTION_FICHE_ACTION 				= 'Suggestion';
	const NB_ETU_CONFIRM_FICHE_ACTION 			= 'NombreEtuConfirm';
	const ETAT_FICHE_ACTION						= 'EtatFicheA';
	
	/**
	 * @var integer
	 */
	private $id;
	
	/**
	 * @var integer
	 */
	private $idAction;
	
	/**
	 * @var string
	 */
	private $travailEffectue;
	
	/**
	 * @var string
	 */
	private $pointPositif;
	
	/**
	 * @var string
	 */
	private $pointNegatif;
	
	/**
	 * @var string
	 */
	private $bonSAavoir;
	
	/**
	 * @var string
	 */
	private $suggestion;
	
	/**
	 * @var integer
	 */
	private $nbEtuConfirm;
	
	/**
	 * @var string
	 */
	private $etatFicheAction;
	
	
	public function __construct()
	{
		parent::__construct();
	}
	
	/**
	 * Fonction permettant de récupérer une fiche action en fonction de l'identifiant de l'action
	 * @param integer $id identifiant de l'action
	 * @return FicheAction une fiche action
	 */
	public static function findByIdAction($idAction)
	{
		$CI = get_instance();
			
		$CI->load->database('db_adc', true);
			
		$resultat = $CI->db	->select(FicheAction::ID_FICHE_ACTION.','.FicheAction::ID_ADC_FICHE_ACTION.','.FicheAction::TRAVAIL_EFFECTUE_FICHE_ACTION.','.FicheAction::POINT_POSITIF_FICHE_ACTION.','.FicheAction::POINT_NEGATIF_FICHE_ACTION.','.FicheAction::BON_A_SAVOIR_FICHE_ACTION.','.FicheAction::SUGGESTION_FICHE_ACTION.','.FicheAction::NB_ETU_CONFIRM_FICHE_ACTION.','.FicheAction::ETAT_FICHE_ACTION)
							->from(FicheAction::TABLE_FICHE_ACTION)
							->where(FicheAction::ID_ADC_FICHE_ACTION, $idAction)
							->limit(1)
							->get()
							->result_array();
			
		if(!empty($resultat))
		{
				$ficheAction = new FicheAction();
				$ficheAction->setId($resultat[0][FicheAction::ID_FICHE_ACTION]);
				$ficheAction->setIdAction($resultat[0][FicheAction::ID_ADC_FICHE_ACTION]);
				$ficheAction->setTravailEffectue($resultat[0][FicheAction::TRAVAIL_EFFECTUE_FICHE_ACTION]);
				$ficheAction->setPointPositif($resultat[0][FicheAction::POINT_POSITIF_FICHE_ACTION]);
				$ficheAction->setPointNegatif($resultat[0][FicheAction::POINT_NEGATIF_FICHE_ACTION]);
				$ficheAction->setBonASavoir($resultat[0][FicheAction::BON_A_SAVOIR_FICHE_ACTION]);
				$ficheAction->setSuggestion($resultat[0][FicheAction::SUGGESTION_FICHE_ACTION]);
				$ficheAction->setNbEtuConfirm($resultat[0][FicheAction::NB_ETU_CONFIRM_FICHE_ACTION]);
				$ficheAction->setEtatFBA($resultat[0][FicheAction::ETAT_FICHE_ACTION]);
	
			return $ficheAction;
		}
		return false;
	}
	
	/**
	 * Fonction permettant d'ajouter une fiche bilan action
	 * @return true ou false
	 */
	public function addFBA()
	{
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
		 
		if($this->getPointPositif() != null)
			$CI->db->set(self::POINT_POSITIF_FICHE_ACTION, $this->getPointPositif());
		 
		if($this->getPointNegatif() != null)
			$CI->db->set(self::POINT_NEGATIF_FICHE_ACTION, $this->getPointNegatif());
		 
		if($this->getBonASavoir() != null)
			$CI->db->set(self::BON_A_SAVOIR_FICHE_ACTION, $this->getBonASavoir());
	
		if($this->getSuggestion() != null)
			$CI->db->set(self::SUGGESTION_FICHE_ACTION, $this->getSuggestion());
		 
		$CI->db->set(self::ID_ADC_FICHE_ACTION, $this->getIdAction());
		$CI->db->set(self::TRAVAIL_EFFECTUE_FICHE_ACTION, $this->getTravailEffectue());
		$CI->db->set(self::NB_ETU_CONFIRM_FICHE_ACTION, $this->getNbEtuConfirm());
		$CI->db->set(self::ETAT_FICHE_ACTION, $this->getEtatFBA());
		 
	
		return $CI->db->insert(self::TABLE_FICHE_ACTION);
	}
	
	
	/**
	 * Fonction permettant de modifier une fiche bilan action
	 * @return true ou false
	 */
	public function modifyFBA()
	{		
		$CI = get_instance();
	
		$CI->load->database('db_adc', true);
		
		if($this->getPointPositif() != null)
			$CI->db->set(self::POINT_POSITIF_FICHE_ACTION, $this->getPointPositif());
			
		if($this->getPointNegatif() != null)
			$CI->db->set(self::POINT_NEGATIF_FICHE_ACTION, $this->getPointNegatif());
			
		if($this->getBonASavoir() != null)
			$CI->db->set(self::BON_A_SAVOIR_FICHE_ACTION, $this->getBonASavoir());
	
		if($this->getSuggestion() != null)
			$CI->db->set(self::SUGGESTION_FICHE_ACTION, $this->getSuggestion());
			
		$CI->db->set(self::ID_ADC_FICHE_ACTION, $this->getIdAction());
		$CI->db->set(self::TRAVAIL_EFFECTUE_FICHE_ACTION, $this->getTravailEffectue());
		$CI->db->set(self::NB_ETU_CONFIRM_FICHE_ACTION, $this->getNbEtuConfirm());
		$CI->db->set(self::ETAT_FICHE_ACTION, $this->getEtatFBA());
		
		$CI->db->where(self::ID_FICHE_ACTION, (int)$this->getId());
		
		return $CI->db->update(self::TABLE_FICHE_ACTION);
	}
	
	
	/**
	 * Get id
	 *
	 * @return integer
	 */
	public function getId()
	{
		return $this->id;
	}
	
	/**
	 * Set id
	 *
	 * @param integer id
	 */
	public function setId($id)
	{
		$this->id = $id;
	}
	
	/**
	 * Get idAction
	 *
	 * @return integer
	 */
	public function getIdAction()
	{
		return $this->idAction;
	}
	
	/**
	 * Set idAction
	 *
	 * @param integer idAction
	 */
	public function setIdAction($idAction)
	{
		$this->idAction = $idAction;
	}
	
	/**
	 * Set travailEffectue
	 *
	 * @param string $travailEffectue
	 */
	public function setTravailEffectue($travailEffectue)
	{
		$this->travailEffectue = $travailEffectue;
	}
	
	/**
	 * Get travailEffectue
	 *
	 * @return string
	 */
	public function getTravailEffectue()
	{
		return $this->travailEffectue;
	}
	
	/**
	 * Set pointPositif
	 *
	 * @param string $pointPositif
	 */
	public function setPointPositif($pointPositif)
	{
		$this->pointPositif = $pointPositif;
	}
	
	/**
	 * Get pointPositif
	 *
	 * @return string
	 */
	public function getPointPositif()
	{
		return $this->pointPositif;
	}
	
	/**
	 * Set pointNegatif
	 *
	 * @param string $pointNegatif
	 */
	public function setPointNegatif($pointNegatif)
	{
		$this->pointNegatif = $pointNegatif;
	}
	
	/**
	 * Get pointNegatif
	 *
	 * @return string
	 */
	public function getPointNegatif()
	{
		return $this->pointNegatif;
	}
	
	/**
	 * Set bonASavoir
	 *
	 * @param string $bonASavoir
	 */
	public function setBonASavoir($bonASavoir)
	{
		$this->bonASavoir = $bonASavoir;
	}
	
	/**
	 * Get bonASavoir
	 *
	 * @return string
	 */
	public function getBonASavoir()
	{
		return $this->bonASavoir;
	}
	
	/**
	 * Set suggestion
	 *
	 * @param string $suggestion
	 */
	public function setSuggestion($suggestion)
	{
		$this->suggestion = $suggestion;
	}
	
	/**
	 * Get suggestion
	 *
	 * @return string
	 */
	public function getSuggestion()
	{
		return $this->suggestion;
	}
	
	/**
	 * Set nbEtuConfirm
	 *
	 * @param string $nbEtuConfirm
	 */
	public function setNbEtuConfirm($nbEtuConfirm)
	{
		$this->nbEtuConfirm = $nbEtuConfirm;
	}
	
	/**
	 * Get nbEtuConfirm
	 *
	 * @return int
	 */
	public function getNbEtuConfirm()
	{
		return $this->nbEtuConfirm;
	}
	
	/**
	 * Set etatFicheAction
	 *
	 * @param int $etatFicheAction
	 */
	public function setEtatFBA($etatFicheAction)
	{
		$this->etatFicheAction = $etatFicheAction;
	}
	
	/**
	 * Get etat_fiche_action
	 *
	 * @return string
	 */
	public function getEtatFBA()
	{
		return $this->etatFicheAction;
	}
	
	
}
?>
